Game apparatus and computer-readable storage medium

ABSTRACT

A twist amount is calculated based on an angular velocity around a Z-axis of an input device when a player performs a shoot operation. Based on a value of a difficulty level stored in an external main memory, a minimum successful twist amount and a maximum successful twist amount are determined. As a result, the higher the difficulty level is, the narrower a successful range of the twist amount becomes. Further, the twist amount of the input device, which is obtained when the player performs the shoot operation for a first to a fourth shots, is stored in the external main memory. When the player performs the shoot operation for a fifth shot or thereafter, the twist amount of the input device at the time of the shoot operation for the fifth shot and thereafter is corrected with the use of the twist amount of the first to fourth shots.

CROSS REFERENCE TO RELATED APPLICATION

This is a divisional application which claims priority to U.S.application Ser. No. 12/504,906, filed Jul. 17, 2009, which in turnclaims priority to Japanese Patent Application Nos. 2009-103230 and2009-103231, both filed Apr. 21, 2009, the disclosures of all of whichare incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to a game apparatus and acomputer-readable storage medium, and more particularly to a gameapparatus and a computer-readable storage medium for performing a gameprocess in accordance with operation data, including angular velocitydata, which is obtained from an angular velocity sensor provided to acontroller.

2. Description of the Background Art

Conventionally, there bas been a game apparatus for performing a gameprocess in accordance with operation data, including an angularvelocity, which is obtained from a gyro sensor provided to a controller.For example, in a game apparatus disclosed in Japanese Laid-Open PatentPublication No. 2000-308756, in accordance with information about anangular velocity, for example, obtained from a miltiaxial gyro sensorprovided to a controller, a motion of a sword held by a character in avirtual game space is controlled.

However, in the game apparatus disclosed in Japanese Laid-Open PatentPublication No. 2000-308756, in the game executed based on the angularvelocity data obtained from the angular velocity sensor, it is notconsidered to set a difficulty level of the game, which makes the gamemonotonous. Additionally, as in the case of the game apparatus disclosedin Japanese Laid-Open Patent Publication No. 2000-308756, a gameexecuted based on the angular velocity data obtained from the angularvelocity sensor is largely affected by a player's behavior in movinghis/her arm or wrist as compared to a conventional operation with abutton switch. Thus, a problem is caused in that a game may beadvantageous to some player, but may be disadvantage to the other.

SUMMARY OF THE INVENTION

Therefore, an object of the present invention is to provide a gameapparatus and a computer-readable storage medium which are capable ofadjusting a difficulty level of a game which is executed based onangular velocity data obtained from an angular velocity sensor. Further,another object of the present invention is to provide a game apparatusand a computer-readable storage medium which are capable of allowing aplayer to comfortably play a game which is executed based on angularvelocity data obtained from an angular velocity sensor.

In embodiments of the present invention, the following configurationsare applied to attain any of the objects mentioned above. Here, thereference numerals, figure numbers, the supplementary description andthe like in the parentheses indicate an example of correspondence withthe embodiment described below in order to aid in understanding thepresent invention and are not intended to limit, in any way, the scopeof the present invention.

A game apparatus of the present invention is a game apparatus (3)performing a game process based on operation data (62) including angularvelocity data obtained from an angular velocity sensor (55, 56) providedto a controller (8), and includes game process means (10), difficultylevel setting means (10), and difficulty level control means (10).

The game process means executes a game based on the angular velocitydata (FIGS. 9 to 13), and determines success or failure of the game inaccordance with a value of the angular velocity data (S22, FIG. 21, S24,FIG. 22, S30, FIG. 25, FIG. 26).

The difficulty level setting means sets a difficulty level of the game(S32).

The difficulty level control means changes, in accordance with thedifficulty level set by the difficulty level setting means, a successfulrange of the angular velocity data, the successful range in which thegame is determined to be successful by the game process means (S29,FIGS. 23 to 26).

The higher the difficulty level set by the difficulty level settingmeans is, the narrower the successful range may be made by difficultylevel control means.

Another game apparatus of the present invention is a game apparatus (3)performing a game process based on operation data (62) including angularvelocity data obtained from an angular velocity sensor (55,56) providedto a controller (8), and includes game process means (10), difficultylevel setting means (10), and difficulty level control means (10).

The game process means executes a game in which a predetermined object(ball) is caused to move in a virtual game space in accordance with theangular velocity data (FIGS. 9 to 13).

The difficulty level setting means sets a difficulty level of the game(S32).

The difficulty level control means corrects, in accordance with thedifficulty level set by the difficulty level setting means, the movementof the object caused by the game process means (S22, FIG. 21, S24, FIG.22, S30, FIG. 25, FIG. 26).

The difficulty level control means may correct a movement controlparameter (azimuth φ) of the object, the movement control parameterbeing utilized by the game process means, so as to be approximated to atarget value (0) or a target range (φ1˜φ2) of the movement controlparameter, the target value or the target range being required in thegame (FIG. 25, FIG. 26).

Further, the higher the difficulty level set by the difficulty levelsetting means is, the lesser a degree of correction may be performed onthe movement control parameter by the difficulty level control means.

Further, the game process means may control the movement of the objectbased on the angular velocity data when the angular velocity datasatisfies a predetermined condition.

Further, the game process means may control the movement of the objectwhen the magnitude of an angular velocity (P) indicated by the angularvelocity data reaches a local maximum and when a local maximum value ofthe angular velocity is greater than a predetermined threshold (throwingthreshold) (S21).

Further, the game apparatus further includes angular velocity storagemeans (12) for sequentially storing the angular velocity data obtainedfrom the angular velocity sensor. When the magnitude of an angularvelocity (P) indicated by the angular velocity data reaches a localmaximum, and when a local maximum value of the angular velocity isgreater than the predetermined threshold (throwing threshold), the gameprocess means may read, from the angular velocity storage means, piecesof angular velocity data obtained for a predetermined period of timebefore the angular velocity reaches the local maximum, and determine amoving direction (azimuth φ) of the object in accordance with the piecesof angular velocity data. The difficulty level control means may correctthe moving direction (azimuth φ) of the object, which is determined bythe game process means, so as to be approximated to a target movingdirection (0) of the object, the target moving direction being requiredin the game, to a degree corresponding to the difficulty level set bythe difficulty level setting means.

Further, when the magnitude of an angular velocity (P) indicated by theangular velocity data reaches a local maximum, and when a local maximumvalue of the angular velocity is greater than the predeterminedthreshold (throwing threshold), the game process means may determine amoving velocity (initial speed V) and/or a reached distance of theobject in accordance with the local maximum value. The difficulty levelcontrol means may correct the moving velocity and/or the reacheddistance of the object, which is determined by the game process means,so as to be approximated to a target moving velocity and/or a targetreached distance of the object, the target moving velocity and/or atarget reached distance being required in the game, to a degreecorresponding to the difficulty level set by the difficulty levelsetting means.

Further, the difficulty level setting means may change the difficultylevel of the game in accordance with the target reached distance (adistance between a target reached distance player character and abasketball ring) of the object required in the game (FIG. 30).

Further, the game process means may execute, multiple times, the gamebased on the angular velocity data (S17), and determine success orfailure of the game in each of the multiple times. The difficulty levelsetting means may determine a reference difficulty level for asubsequent game in accordance with the success or failure of the game ineach of the multiple times (S32), and determine the difficulty level ofthe subsequent game by adding a difficulty level offset (FIG. 30), whichcorresponds to the target reached distance of the object required in thegame, to the reference difficulty level.

Further, when the magnitude of an angular velocity (P) indicated by theangular velocity data reaches a local maximum, and when a local maximumvalue of the angular velocity is greater than the predeterminedthreshold (throwing threshold), the game process means may set a movingdirection (elevation angle θ) of the object in accordance with anorientation of the controller detected based on the angular velocitydata obtained from the angular velocity sensor (S22). The difficultylevel control means may correct the moving direction (elevation angle θ)of the object determined by the game process means so as to beapproximated to a target moving direction of the object, the targetmoving direction being required in the game, to a degree correspondingto the difficulty level set by the difficulty level setting means.

Further, the game process means may execute, multiple times, the gamebased on the angular velocity data (S17), and determine the successorfailure of the game in each of the multiple times. When a result of thegame in a certain numberth time is determined to be successful, thedifficulty level setting means may set the difficulty level of asubsequent game to be higher than the difficulty level of the game inthe certain numberth time (FIGS. 27 to 29).

Further, the game process means may execute, multiple times, the gamebased on the angular velocity data (S17), and determine the success orfailure of the game in each of the multiple times. When a result of thegame in a certain numberth time is determined to have failed, thedifficulty level setting means may set the difficulty level of asubsequent game to be lower than the difficulty level of the game in thecertain numberth time (FIGS. 27 to 29).

Further, based on first angular velocity data obtained from a firstangular velocity sensor provided to a first controller operated by afirst player, and on second angular velocity data obtained from a secondangular velocity sensor provided to a second controller operated by asecond player, the game process means may execute a game in which thefirst player and the second player play a match, and determine successor failure of a first game operation by the first player and success orfailure of a second game operation by the second player in accordancewith values of the first angular velocity data and the second angularvelocity data, respectively. The difficulty level setting means may seta difficulty level of the first game operation, and a difficulty levelof the second game operation, individually. The difficulty level controlmeans may change, in accordance with the difficulty level of the firstgame operation set by the difficulty level setting means, a successfulrange of the first angular velocity data, in which the first gameoperation is determined to be successful by the game process means, andalso change, in accordance with the difficulty level of the second gameoperation set by the difficulty level setting means, a successful rangeof the second angular velocity data, in which the second game operationis determined to be successful by the game process means.

Further, the difficulty level setting means may set the difficulty levelof a subsequent game in accordance with the success or failure of thefirst game operation in a certain numberth time, and also set adifficulty level of a subsequent game in accordance with the success orfailure of the second game operation in a certain numberth time.

A computer-readable storage medium of the present invention is acomputer-readable storage medium having stored thereon a game programcausing a computer (10) of a game program (3), which executes a gameprocess, based on operation data (62) including angular velocity dataobtained from an angular velocity sensor (55, 56) provided to acontroller (8), to function as computer game process means, difficultylevel setting means, and difficulty level control means.

The game process means executes a game based on the angular velocitydata (FIGS. 9 to 13), and determines success or failure of the game inaccordance with a value of the angular velocity data.

The difficulty level setting means sets a difficulty level of the game(S32).

The difficulty level control means changes, in accordance with thedifficulty level set by the difficulty level setting means, a successfulrange of the angular velocity data, the successful range in which thegame is determined to be successful by the game process means (S29,FIGS. 23 to 26).

Another game program of the present invention is a game program forcausing computer (10) of a game apparatus (3), which executes a gameprocess, based on operation data (62) including angular velocity dataobtained from an angular velocity sensor (55, 56) provided to acontroller (8), to function as game process means, difficulty levelsetting means, and difficulty level control means.

The game process means executes a game in which a predetermined object(ball) is caused to move in a virtual game space in accordance with theangular velocity data (FIGS. 9 to 13).

The difficulty level setting means sets a difficulty level of the game(S32).

The difficulty level control means corrects, in accordance with thedifficulty level set by the difficulty level setting means, the movementof the object caused by the game process means (S22, FIG. 21, S24, FIG.22, S30, FIG. 25, FIG. 26).

Another game apparatus (3) of the present invention: is a game apparatusexecuting, multiple times, a game for causing a player to perform apredetermined game operation (shoot operation) using a controller (8)provided with an angular velocity sensor (55, 56), and performing a gameprocess based on operation data (62) including angular velocity data,which is obtained from the angular velocity sensor each time thepredetermined game operation is performed; and includes parameter valuedetermination means (10), deviation tendency value calculation means(10), and game process means (10).

The parameter value determination means determines a value of apredetermined parameter (twist amount R) in accordance with the angularvelocity data obtained from the angular velocity sensor each time thepredetermined game operation is performed (S25).

The deviation tendency value calculation means calculates a deviationtendency value (an average value of a “twist amount R1 of a first shot”to a “twist amount R4 of a fourth shot”), which indicates a degree ofdeviation tendency of a value of the parameter with respect to a targetvalue of the parameter (“0”), the target value being required in thegame, in accordance with the value of the parameter (the twist amount R1of the first shot” to the “twist amount R4 of the fourth shot”)determined based on the predetermined game operation performed once ormore in the past (S27).

The game process means corrects the value of the parameter determined bythe parameter value determination means with the use of the deviationtendency value calculated by the deviation tendency value calculationmeans (S27), and performs the game process with the use of the correctedvalue of the parameter (S30).

The deviation tendency value calculation means may calculate thedeviation tendency value based on the value of the parameter determinedby the parameter value determination means in accordance with thepredetermined game operation (shoot operation for the first to fourthshots) performed multiple times in the past.

Further, the deviation tendency value calculation means may calculate,as the deviation tendency value, a representative value (average value,weighted average value, mode value, median value) of a differencebetween the value of the parameter, which is determined by the parametervalue determination means in accordance with the predetermined gameoperation performed multiple times in the past, and the target value.

Further, the representative value may be an average value.

Further, the deviation tendency value calculation means may correct thevalue of the parameter by subtracting the deviation tendency valuecalculated by the deviation tendency value calculation means from thevalue of the parameter determined by the parameter value determinationmeans.

Further, the game process means may perform the game process with theuse of the value of the parameter determined by the parameter valuedetermination means, without correcting the value of the parameter withthe deviation tendency value, when the deviation tendency value is yetto be calculated by the deviation tendency value calculation means.

Further, the game process means may include judging means which judgesthat the game operation is successful when the difference between thevalue of the parameter and the target value is in a predetermined range(successful range, FIG. 25).

Further, the parameter value determination means may determine that thepredetermined game operation has been performed when the angularvelocity data satisfies a predetermined condition (S21), and determinethe value of the parameter in accordance with the angular velocity dataobtained from the angular velocity sensor.

Further, the predetermined condition may be that the magnitude of anangular velocity (swing strength P) indicated by the angular velocitydata reaches a local maximum, and that a local maximum value of theangular velocity is greater than a predetermined threshold (throwingthreshold) (S21).

Further, angular velocity storage means (12) for sequentially storingthe angular velocity data obtained from the angular velocity sensor maybe further included. When the magnitude of an angular velocity indicatedby the angular velocity data reaches a local maximum, and when a localmaximum value of the angular velocity is greater than the predeterminedthreshold, the parameter value determination means may read, from theangular velocity storage means, a piece of angular velocity dataobtained for a predetermined period before the angular velocity reachesthe local maximum (angular velocity data of most recent severalsamples), and detect an angular velocity around a predetermined axis(Z-axis) of the controller in accordance with the piece of angularvelocity data, and determine the detected angular velocity (twist amountR) around the predetermined axis of the controller, as the value of theparameter. The game process means may change a moving direction (azimuthφ) of a predetermined object (ball) in a virtual game space, inaccordance with the angular velocity around the predetermined axis ofthe controller, the angular velocity having been subjected to correctionwith the use of the deviation tendency value.

Further, when the magnitude of an angular velocity indicated by theangular velocity data reaches a local maximum, and when a local maximumvalue of the angular velocity is greater than the predeterminedthreshold, the parameter value determination means may determine thevalue of the local maximum (local maximum value of swing strength P) asthe value of the parameter. The game process means may change a movingvelocity (initial velocity V) and/or a reached distance of apredetermined object (ball) in a virtual game space in accordance withthe local maximum value having been subjected to correction with the useof the deviation tendency value.

Further, when the magnitude of an angular velocity indicated by theangular velocity data reaches a local maximum, and when a local maximumvalue of the angular velocity is greater than the predeterminedthreshold, the parameter value determination means may determine, as thevalue of the parameter, an orientation of the controller (orientation inthe pitch direction of the controller 5) detected based on the angularvelocity data obtained from the angular velocity sensor. The gameprocess means may change a moving direction (elevation angle θ) of apredetermined object (ball) in a virtual game space, in accordance withthe orientation of the controller after being subjected to correctionwith the use of the deviation tendency value.

Another computer-readable storage medium of the present invention is acomputer-readable storage medium having stored thereon a game program(61) for causing a computer (10) of a game apparatus (3), whichexecutes, multiple times, a game for causing a player to perform apredetermined game operation (shoot operation) using a controller (8)provided with an angular velocity sensor (55, 56), and which performs agame process based on operation data (62) including angular velocitydata obtained from the angular velocity sensor each time thepredetermined game operation is performed, to function as parametervalue determination means, deviation tendency value calculation means,and game process means.

The parameter value determination means determines a value of apredetermined parameter (twist amount R) in accordance with the angularvelocity data obtained from the angular velocity sensor each time thepredetermined game operation is performed (S25).

The deviation tendency value calculation means calculates a deviationtendency value (an average value of a “twist amount R1 of a first shot”to a “twist amount R4 of a fourth shot”), which indicates a degree ofdeviation tendency of a value of the parameter, which is determined bythe parameter value determination means in accordance with thepredetermined game operation, with respect to a target value (“0”) ofthe parameter, the target value being required in the game, inaccordance with the value of the parameter (“twist amount R1 of thefirst shot” to “twist amount R4 of the fourth shot”) determined, by theparameter value determination means in accordance with the predeterminedgame operation performed once or more in the past (S27).

The game process means corrects the value of the parameter determined bythe parameter value determination means with the use of the deviationtendency value calculated by the deviation tendency value calculationmeans (S27), and performs the game process with the use of the correctedvalue of the parameter (S30).

According to the present invention, it is possible to provide a gameapparatus and a computer-readable storage medium, which are capable ofsetting the difficulty level of a game, in a game that is executed basedon the angular velocity data obtained from the angular velocity sensor,and also possible to provide a game apparatus and a computer-readablestorage medium which are capable of allowing a player to comfortablyplay a game.

These and other objects, features, aspects and advantages of the presentinvention will become more apparent from the following detaileddescription of the present invention when taken in conjunction with theaccompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an external view of a game system;

FIG. 2 is a functional block diagram of a game apparatus;

FIG. 3 is a perspective view illustrating an external structure of aninput device;

FIG. 4 is a perspective view illustrating an external structure of acontroller;

FIG. 5 is a diagram illustrating an internal structure of thecontroller;

FIG. 6 is a diagram illustrating an internal structure of thecontroller;

FIG. 7 is a block diagram illustrating a configuration of the inputdevice;

FIG. 8 is a diagram schematically illustrating a state where a gameoperation is performed with the use of the input device 8;

FIG. 9 is an exemplary game image displayed on a screen of a television2;

FIG. 10 is an exemplary game image displayed on the screen of thetelevision 2;

FIG. 11 is an exemplary game image displayed on the screen of thetelevision 2;

FIG. 12 is an exemplary game image displayed on the screen of thetelevision 2;

FIG. 13 is an exemplary game image displayed on the screen of thetelevision 2;

FIG. 14 is an exemplary memory map in an external main memory 12;

FIG. 15 is a main flowchart showing a flow of a game process executed onthe game apparatus 3;

FIG. 16 is a flowchart showing, in detail, a shooting process (step S16)shown in FIG. 15;

FIG. 17 is a diagram showing a motion of a player's arm at the time of ashoot operation;

FIG. 18 is a diagram illustrating a change in swing strength P at thetime of the shoot operation;

FIG. 19 is a diagram illustrating a method for detecting a local maximumvalue of the swing strength P and a method for determining a shoottiming;

FIG. 20 is a diagram showing a throwing direction in a virtualthree-dimensional game space;

FIG. 21 is a diagram illustrating a method for determining an elevationangle θ in a throwing direction;

FIG. 22 is a diagram illustrating a method for determining an initialvelocity of a ball;

FIG. 23 is a diagram illustrating a method for determining a minimumsuccessful twist amount Rmin corresponding to a difficulty level;

FIG. 24 is a diagram illustrating a method for determining a maximumsuccessful twist amount Rmax corresponding to the difficulty level;

FIG. 25 is a diagram illustrating a method for determining an azimuth φin the throwing direction in the case where the difficulty level is 5;

FIG. 26 is a diagram illustrating a method for determining the azimuth φin the throwing direction in the case where the difficulty level is 15;

FIG. 27 is a first exemplary method for updating the difficulty level inaccordance with success or failure in shooting;

FIG. 28 is a second exemplary method for updating the difficulty levelin accordance with the success or failure in shooting;

FIG. 29 is a third exemplary method for updating the difficulty level inaccordance with the success or failure in shooting;

FIG. 30 is a diagram illustrating a relation between a distance from aplayer character to a basketball ring and a difficulty level offset.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

[Entire Configuration of Game System]

With reference to FIG. 1, a game system 1 including a game apparatusaccording to an embodiment of the present invention will be described.FIG. 1 is an external view of the game system 1. In the followingdescription, a stationary game apparatus is taken as an example fordescribing a game apparatus and a game program of the presentembodiment. As shown in FIG. 1, the game system 1 includes a televisionreceiver (hereinafter, simply referred to as a “television”) 2, a gameapparatus 3, an optical disc 4, an input device 8, and a marker section6. In this system, the game apparatus 3 performs game process based on agame operation using the input device 8.

In the game apparatus 3, the optical disc 4 typifying an informationstorage medium used for the game apparatus 3 in an exchangeable manneris detachably inserted. A game program executed by the game apparatus 3is stored in the optical disc 4. The game apparatus 3 has, on the frontsurface thereof, an insertion opening for the optical disc 4. The gameapparatus 3 reads and executes the game program stored in the opticaldisc 4 which is inserted through the insertion opening, so as to performthe game process.

The game apparatus 3 is connected to the television 2, which is anexemplary display device, via a connecting cord. A game image obtainedas a result of the game process performed by the game apparatus 3 isdisplayed on the television 2. Further, the marker section 6 is providedon the periphery (in FIG. 1, on a portion above a screen) of a screen ofthe television 2. The marker section 6 includes two markers 6R and 6L onboth ends thereof. Specifically, the marker 6R (as well as the marker6L) includes one or more infrared LED, and emits an infrared lightforward from the television 2. The marker section 6 is connected to thegame apparatus 3, and the game apparatus 3 is able to control eachinfrared LED of the marker section 6 so as to light each infrared LEDup.

The input device 8 provides the game apparatus 3 with operation datarepresenting a content of an operation performed on the input device 8itself. In the present embodiment, the input device 8 includes acontroller 5 and a gyro sensor unit 7. As described in detail below, theinput device 8 is structured such that the gyro sensor unit 7 isdetachably connected to the controller 5. Radio communication is madebetween the controller 5 and the game apparatus 3. In the presentembodiment, the radio communication between the controller 5 and thegame apparatus 3 is made by using, for example, the Bluetooth(Registered Trademark) technology. In another embodiment, connectionbetween the controller 5 and the game apparatus 3 may be a wiredconnection.

[Internal Structure of Game Apparatus 3]

Next, an internal structure of the game apparatus 3 will be describedwith reference to FIG. 2. FIG. 2 is a block diagram illustrating astructure of the game apparatus 3. The game apparatus 3 includes the CPU10, a system LSI 11, an external main memory 12, a ROM/RTC 13, a diskdrive 14, an AV-IC 15, and the like.

The CPU 10, functioning as a game processor, performs a game process byexecuting the game program stored in the optical disc 4. The CPU 10 isconnected to the system LSI 11. To the system LSI 11, the external mainmemory 12, the ROM/RTC 13, the disk drive 14, and the AV-IC 15 as wellas the CPU 10 are connected. The system LSI 11 performs processes forcontrolling data transmission between the respective componentsconnected thereto, generating an image to be displayed, acquiring datafrom an external device, and the like. The internal structure of thesystem LSI 11 will be described below. The external main memory 12 of avolatile type stores a program such as a game program read from theoptical disc 4 and a game program read from a flash memory 17, andvarious data, and the external main memory 12 is used as a work area anda buffer area for the CPU 10. The ROM/RTC 13 includes a ROM (so-called aboot ROM) incorporating a boot program for the game apparatus 3, and aclock circuit (RTC: Real Time Clock) for counting a time. The disk drive14 reads program data, texture data, and the like from the optical disk4, and writes the read data into an internal main memory 11 e or theexternal main memory 12 described below.

Further, the system LSI 11 includes an input/output processor (I/Oprocessor) 11 a, a GPU (Graphics Processor Unit) 11 b, a DSP (DigitalSignal Processor) 11 c, a VRAM 11 d, and the internal main memory 11 e.These components 11 a, 11 b, 11 c, 11 d, and 11 e are connected witheach other through an internal bus, which is not shown.

The GPU 11 b, acting as a part of rendering means, generates an image inaccordance with a graphics command (rendering command) from the CPU 10.The VRAM 11 d stores data (data such as polygon data and texture data)necessary for the GPU 11 b to execute the graphics command. When animage is generated, the GPU 11 b generates image data by using datastored in the VRAM 11 d.

The DSP 11 c, functioning as an audio processor, generates audio data byusing sound data and sound waveform (tone quality) data stored in theinternal main memory 11 e or the external main memory 12.

The image data and the audio data generated as described above are readby the AV-IC 15. The AV-IC 15 outputs the read image data to thetelevision 2 through an AV connector 16, and outputs the read audio datato a speaker 2 a incorporated in the television 2. Thus, an image isdisplayed on the television 2, and a sound is outputted from the speaker2 a.

The input/output processor 11 a performs data transmission to and datareception from the component connected thereto, and download of datafrom an external device. The input/output processor 11 a is connected tothe flash memory 17, a wireless communication module 18, a wirelesscontroller module 19, an extension connector 20, and a memory cardconnector 21. The wireless communication module 18 is connected to anantenna 22, and the wireless controller module 19 is connected to anantenna 23.

The input/output processor 11 a is connected to a network via thewireless communication module 18 and the antenna 22, so as tocommunicate with another game apparatus and various servers connected tothe network. The input/output processor 11 a regularly accesses theflash memory 17, and detects data, if any, which needs to be transmittedto the network, and transmits, when the data is detected, the data tothe network through the wireless communication module 18 and the antenna22. Further, the input/output processor 11 a receives data transmittedfrom another game apparatus, and/or download data from a downloadserver, through the network, the antenna 22, and the wirelesscommunication module 18, and stores the received data and/or thedownloaded data in the flash memory 17. The CPU 10 executes a gameprogram so as to read data stored in the flash memory 17 and use thedata on the game program. The flash memory 17 may store saved data (gameresult data or intermediate step data) of a game played by using thegame apparatus 3 in addition to data transmitted from the game apparatus3 to another game apparatus or the various servers, and data received bythe game apparatus 3 from another game apparatus or the various servers.

The input/output processor 11 a receives operation data transmitted fromthe controller 5 through the antenna 23 and the wireless controllermodule 19, and (temporarily) stores the received operation data in abuffer area of the internal main memory 11 e or the external main memory12.

Further, the input/output processor 11 a is connected to the extensionconnector 20 and the memory card connector 21. The extension connector20 is a connector for interface, such as a USB or a SCSI, and allowscommunication with the network by connecting thereto a media such as anexternal storage media, connecting thereto a peripheral device such asanother controller, and/or connecting thereto a wired communicationconnector, without using the wireless communication module 18. Thememory card connector 21 is a connector for connecting thereto anexternal storage media such as a memory card. For example, theinput/output processor 11 a accesses an external storage media throughthe extension connector 20 or the memory card connector 21 so as tostore data in the external storage media or read data from the externalstorage media.

The game apparatus 3 includes a power button 24, a reset button 25, andan eject button 26. The power button 24 and the reset button 25 areconnected to the system LSI 11. When the power button 24 is on, power issupplied to the respective components of the game apparatus 3 through anAC adaptor not shown. When the reset button 25 is pressed, the systemLSI 11 reboots a boot program of the game apparatus 3. The eject button26 is connected to the disk drive 14. When the eject button 26 ispressed, the optical disc 4 is ejected from the disk drive 14.

[Structure of Input Device 8]

Next, with reference to FIGS. 3 to 6, the input device 8 will bedescribed. FIG. 3 is a perspective view illustrating an externalstructure of an input device 8. FIG. 4 is a perspective viewillustrating an external structure of the controller 5. FIG. 3 is aperspective view illustrating the controller 5 as viewed from the toprear side thereof, and FIG. 4 is a perspective view illustrating thecontroller 5 as viewed from the bottom front side thereof.

As shown in FIG. 3 and FIG. 4, the controller 5 has a housing 31 formedby, for example, plastic molding. The housing 31 has a generallyparallelepiped shape extending in a longitudinal direction from front torear (Z-axis direction shown in FIG. 3), and the entire housing 31 hassuch a size as to be able to be held by one hand of an adult or even achild. A player is allowed to perform game operation by pressing buttonsprovided on the controller 5, and moving the controller 5 so as tochange the position and the orientation thereof.

The housing 31 has a plurality of operation buttons. As shown in FIG. 3,on the top surface of the housing 31, a cross button 32 a, a firstbutton 32 b, a second button 32 c, an A button 32 d, a minus button 32e, a home button 32 f, a plus button 32 g, and a power button 32 h areprovided. On the other hand, as shown in FIG. 4, a recessed portion isformed on a bottom surface of the housing 31, and a B button 32 i isprovided on a rear slope surface of the recessed portion. The operationbuttons 32 a to 32 i are assigned, as necessary, with respectivefunctions in accordance with the game program executed by the gameapparatus 3. Further, the power button 32 h remote-controls the power ofa body of the game apparatus 3 to be on or off. The home button 32 f andthe power button 32 h each has the top surface thereof buried in the topsurface of the housing 31. Therefore, the home button 32 f and the powerbutton 32 h are prevented from being inadvertently pressed by theplayer.

On a rear surface of the housing 31, the connector 33 is provided. Theconnector 33 is used for connecting the controller 5 to another device(for example, the gyro sensor unit 7 or another controller). Both sidesurfaces of the connector 33 provided on the rear surface of the housing31 each has a locking hole 33 a for preventing easy removal of anotherdevice as described above.

In the rear portion on the top surface of the housing 31, a plurality(four in FIG. 3) of LEDs 34 a, 34 b, 34 c, and 34 d are provided. Thecontroller 5 is assigned a controller type (number) so as to bedistinguishable from another main controller. The LEDs 34 a, 34 b, 34 c,and 34 d are each used for informing a player of the controller typewhich is currently set to controller 5 that he/she is using, and forinforming a player of remaining battery power of the controller 5, forexample. Specifically, when a game operation is performed by using thecontroller 5, one of the plurality of LEDs 34 a, 34 b, 34 c, and 34 dcorresponding to the controller type is lit up.

The controller 5 has an imaging information calculation section 35 (FIG.7), and a light incident surface 35 a of the imaging informationcalculation section 35 is provided on the front surface of the housing31, as shown in FIG. 4. The light incident surface 35 a is made ofmaterial passing therethrough at least infrared light outputted from themarkers 6R and 6L.

On the top surface of the housing 31, a sound hole 31 a for externallyoutputting a sound from a speaker 49 (shown in FIG. 5) which isincorporated in the controller 5 is provided between the first button 32b and the home button 32 f.

Next, with reference to FIGS. 5 and 6, an internal structure of thecontroller 5 will be described. FIG. 5 and FIG. 6 are diagramsillustrating the internal structure of the controller 5. FIG. 5 is aperspective view illustrating a state where an upper casing (a part ofthe housing 31) of the controller 5 is removed. FIG. 6 is a perspectiveview illustrating a state where a lower casing (a part of the housing31) of the controller 5 is removed. FIG. 6 is a perspective viewillustrating a reverse side of a substrate 30 shown in FIG. 5.

As shown in FIG. 5, the substrate 30 is fixed inside the housing 31, andon a top main surface of the substrate 30, the operation buttons 32 a to32 h, the LEDs 34 a to 34 d, an acceleration sensor 37, an antenna 45,the speaker 49, and the like are provided. These elements are connectedto a microcomputer 42 (see FIG. 6) via lines (not shown) formed on thesubstrate 30 and the like. In the present embodiment, the accelerationsensor 37 is provided on a position offset from the center of thecontroller 5 with respect to the X-axis direction. Thus, calculation ofthe movement of the controller 5 being rotated around the Z-axis may befacilitated. Further, the acceleration sensor 37 is provided in front ofthe center of the controller 5 with respect to the longitudinaldirection (Z-axis direction). Further, a wireless module 44 (see FIG. 7)and the antenna 45 allow the controller 5 to act as a wirelesscontroller.

On the other hand, as shown in FIG. 6, at a front edge of a bottom mainsurface of the substrate 30, the imaging information calculation section35 is provided. The imaging information calculation section 35 includesan infrared filter 38, a lens 39, the image pickup element 40 and animage processing circuit 41 located in order, respectively, from thefront surface of the controller 5. These components 38 to 41 areattached on the bottom main surface of the substrate 30.

On the bottom main surface of the substrate 30, the microcomputer 42 anda vibrator 48 are provided. The vibrator 48 is, for example, a vibrationmotor or a solenoid, and is connected to the microcomputer 42 via linesformed on the substrate 30 or the like. The controller 5 is vibrated byan actuation of the vibrator 48 based on a command from themicrocomputer 42. Therefore, the vibration is conveyed to the player'shand holding the controller 5, and thus a so-called vibration-responsivegame is realized. In the present embodiment, the vibrator 48 is disposedslightly toward the front of the housing 31. That is, the vibrator 48 ispositioned at the end portion of the controller 5 offset from the centerthereof, and therefore the vibration of the vibrator 48 can lead toenhancement of the vibration of the entire controller 5. Further, theconnector 33 is provided at the rear edge of the bottom main surface ofthe substrate 30. In addition to the components shown in FIGS. 5 and 6,the controller 5 includes a quartz oscillator for generating a referenceclock of the microcomputer 42, an amplifier for outputting a soundsignal to the speaker 49, and the like.

Further, the gyro sensor unit 7 includes a gyro sensor (gyro sensors 55and 56 shown in FIG. 7) for detecting for angular velocities aroundthree axes, respectively. The gyro sensor unit 7 is detachably mountedto the connector 33 of the controller 5. The gyro sensor unit 7 has, atthe front edge (an edge portion facing toward the Z-axis positivedirection shown in FIG. 3), a plug (a plug 53 shown in FIG. 7)connectable to the connector 33. Further, the plug 53 has hooks (notshown) on both sides, respectively. In a state where the gyro sensorunit 7 is mounted to the controller 5, the plug 53 is connected to theconnector 33, and the hooks engage in the locking holes 33 a,respectively, of the controller 5. Therefore, the controller 5 and thegyro sensor unit 7 are securely fixed to each other. Further, the gyrosensor unit 7 has a button 51 on each side surface (surfaces facingtoward the X-axis direction shown in FIG. 3). When the buttons 51 arepressed, the hooks are disengaged from the locking holes 33 a.Therefore, when the plug 53 is removed from the connector 33 while thebuttons 51 are being pressed, the gyro sensor unit 7 can be disconnectedfrom the controller 5.

Further, a connector having the same shape as the connector 33 isprovided at the rear edge of the gyro sensor unit 7. Therefore, anotherdevice which can be mounted to (the connector 33 of) the controller 5can be mounted to the connector of the gyro sensor unit 7. In FIG. 3, acover 52 is detachably provided over the connector.

FIGS. 3 to 6 each shows only examples of a shape of each of thecontroller 5 and the gyro sensor unit 7, a shape of each operationbutton, the number of acceleration sensors, the number of vibrators,fixing positions of the acceleration sensor and the vibrator,respectively, and the like. Other shapes, numbers, and fixing positionsmay be applicable. Further, although in the present embodiment theimaging direction of the image pickup means is Z-axis positivedirection, the imaging direction may be any direction. That is, theimagining information calculation section 35 (the light incident surface35 a of the imaging information calculation section 35) of thecontroller 5 may not be provided on the front surface of the housing 31,but may be provided on any other surface on which a light can bereceived from the outside of the housing 31.

FIG. 7 is a block diagram illustrating a structure of the input device 8(the controller 5 and the gyro sensor unit 7). The controller 5 includesan operation section 32 (the respective operation buttons 32 a to 32 i),the connector 33, the imaging information calculation section 35, acommunication section 36, and the acceleration sensor 37. The controller5 transmits, as operation data, data representing a content of operationperformed on the controller 5 itself, to the game apparatus 3.

The operation section 32 includes the operation buttons 32 a to 32 idescribed above, and outputs, to the microcomputer 42 of a communicationsection 36, operation button data indicating an input state (that is,whether or not each operation button 32 a to 32 i is pressed) of eachoperation button 32 a to 32 i.

The imaging information calculation section 35 is a system for analyzingimage data taken by the image pickup means and calculating the centroid,the size and the like of an area having a high brightness in the imagedata. The imaging information calculation section 35 has, for example, amaximum sampling period of about 200 frames/sec., and therefore cantrace and analyze even a relatively fast motion of the controller 5.

The imaging information calculation section 35 includes the infraredfilter 38, the lens 39, the image pickup element 40 and the imageprocessing circuit 41. The infrared filter 38 allows only infrared lightto pass therethrough, among light incident on the front surface of thecontroller 5. The lens 39 collects the infrared light which has passedthrough the infrared filter 38 so as to be incident on the image pickupelement 40. The image pickup element 40 is a solid-state imaging devicesuch as, for example, a CMOS sensor or a CCD sensor, and receives theinfrared light collected by the lens 39, and outputs an image signal.The markers 6R and 6L of the marker section 6 provided near the displayscreen of the television 2 each includes an infrared LED for outputtinginfrared light forward from the television 2. Therefore, the infraredfilter 38 enables the image pickup element 40 to receive only theinfrared light which has passed through the infrared filter 38 andgenerate image data, so that an image of each of the markers 6R and 6Lcan be captured with enhanced accuracy. Hereinafter, the image capturedby the image pickup element 40 is referred to as a pickup image. Theimage data generated by the image pickup element 40 is processed by theimage processing circuit 41. The image processing circuit 41 calculates,in the pickup image, a position of an imaging subject (the marker 6R andthe marker 6L). The image processing circuit 41 outputs datarepresenting a coordinate point of the calculated position, to themicrocomputer 42 of the communication section 36. The data representingthe coordinate point is transmitted as operation data to the gameapparatus 3 by the microcomputer 42. Hereinafter, the coordinate pointis referred to as a “marker coordinate point”. The marker coordinatepoint changes depending on an orientation (angle of tilt) and/or aposition of the controller 5 itself, and therefore the game apparatus 3is allowed to calculate the orientation and the position of thecontroller 5 by using the marker coordinate point.

In another embodiment, the controller 5 may not necessarily include theimage processing circuit 41, and the controller 5 may transmit thepickup image as it is to the game apparatus 3. At this time, the gameapparatus 3 may have a circuit or a program, having the same function asthe image processing circuit 41, for calculating the marker coordinatepoint.

The acceleration sensor 37 detects for an acceleration (includinggravitational acceleration) of the controller 5, that is, detects for aforce (including gravity) applied to the controller 5. The accelerationsensor 37 detects a value of an acceleration (linear acceleration) inthe straight line direction along the sensing axis direction, amongaccelerations applied to a detection section of the acceleration sensor37. For example, multiaxial acceleration sensor having two or more axesdetects an acceleration of a component for each axis, as an accelerationapplied to the detection section of the acceleration sensor. Forexample, three-axis or two-axis acceleration sensor may be of the typeavailable from Analog Devices, Inc. or STMicroelectronics N.V. Theacceleration sensor 37 is, for example, an electrostatic capacitancetype acceleration sensor. However, another type of acceleration sensormay be used.

In the present embodiment, the acceleration sensor 37 detects a linearacceleration in three axis directions, i.e., the up/down direction(Y-axis direction shown in FIG. 3), the left/right direction (the X-axisdirection shown in FIG. 3), and the forward/backward direction (theZ-axis direction shown in FIG. 3), relative to the controller 5. Theacceleration sensor 37 detects acceleration for the straight linedirection along each axis, and an output from the acceleration sensor 37represents a value of the linear acceleration for each of the threeaxes. In other words, the detected acceleration is represented as athree-dimensional vector (ax, ay, az) in an XYZ-coordinate system(controller coordinate system) defined relative to the input device 8(controller 5). Hereinafter, a vector representing components of theacceleration values detected for the three axes, respectively, by theacceleration sensor 37 is referred to as an acceleration vector.

Data (acceleration data) representing an acceleration detected by theacceleration sensor 37 is outputted to the communication section 36. Theacceleration detected by the acceleration sensor 37 changes depending onan orientation (angle of tilt) and a movement of the controller 5, andtherefore the game apparatus 3 is allowed to calculate the orientationand the movement of the controller 5 by using the acceleration data. Inthe present embodiment, the game apparatus 3 determines the orientationof the input device 8 (controller 5) based on the acceleration data andangular velocity data which is described below. The orientation of theinput device is, for example, represented by a coordinate value on thexyz-coordinate system which is based on a predetermined position in aspace in which the input device is present. Here, as shown in FIG. 1,the xyz-coordinate system is based on the precondition that the inputdevice 8 is situated in front of the marker section 6. A direction fromthe position of the input device 8 to the marker section 6 is set as az-axis positive direction, a vertically upward direction (a directionopposite to the gravity direction) is set as a y-axis positivedirection, and a direction to the left when the marker section 6 isviewed from the position of the input device 8 is set as an x-axispositive direction. Further, the orientation of the input device in asituation where the X-axis, the Y-axis, and the Z-axis, which is definedbased on the input device 8 (controller 5) coincide with the x-axis, they-axis, and the z-axis, respectively, is referred to a referenceorientation. The orientation of the input device 8 is represented as anorientation on the xyz-system in the case where the input device 8 isrotated from the reference orientation in a roll direction (around theZ-axis), a pitch direction (around the X-axis), and a yaw direction(around the Y-axis) while the Z-axis is set as the reference. Theorientation is expressed by a rotation matrix M described later.

The data (acceleration data) representing the acceleration (accelerationvector) detected by the acceleration sensor 37 is outputted to thecommunication section 36.

When a computer such as a processor (for example, the CPU 10) of thegame apparatus 3 or a processor (for example, the microcomputer 42) ofthe controller 5 processes an acceleration signal outputted from theacceleration sensor 37, additional information relating to thecontroller 5 can be inferred or calculated (determined), as one skilledin the art will readily understand from the description herein. Forexample, suppose a case where the computer performs a process, based onthe precondition that the controller 5 including the accelerate sensor37 is in a static state (that is, a case where a process is performedbased on the precondition that an acceleration detected by theacceleration sensor will include only a gravitational acceleration).When the controller 5 is actually in the static state, it is possible todetermine whether or not the controller 5 tilts relative to thedirection of gravity and to also determine a degree of the tilt, basedon the acceleration having been detected. Specifically, when a statewhere a detection axis of the acceleration sensor 37 is toward thevertically downward direction represents a reference, whether or not thecontroller 5 tilts relative to the reference can be determined based onwhether or not 1 G (gravitational acceleration) is applied to thedetection axis, and a degree to which the controller 5 tilts relative tothe reference can be determined based on the magnitude of thegravitational acceleration. Further, the multiaxial acceleration sensor37 subjects, to a processing, the acceleration signals having beendetected in the respective axes so as to more specifically determine thedegree to which the controller 5 tilts relative to the direction ofgravity. In this case, the processor may calculate, based on the outputfrom the acceleration sensor 37, an angle of the tilt at which thecontroller 5 tilts, or calculate direction in which the controller 5tilts without calculating the angle of the tilt. Thus, when theacceleration sensor 37 is used in combination with the processor, anangle of tilt or an orientation of the controller 5 may be determined.

On the other hand, in a case where it is anticipated that the controller5 will be in a dynamic state (a state where the controller 5 is beingmoved), the acceleration sensor 37 detects an acceleration based on amovement of the controller 5, in addition to the gravitationalacceleration. Therefore, when the gravitational acceleration componentis eliminated from the detected acceleration through a predeterminedprocess, it is possible to determine a direction in which the controller5 moves. Even when it is anticipated that the controller 5 will be inthe dynamic state, the acceleration component based on the movement ofthe acceleration sensor is eliminated from the detected accelerationthrough a predetermined process, whereby it is possible to determine thetilt of the controller 5 relative to the direction of gravity. Inanother embodiment, the acceleration sensor 37 may include an embeddedprocessor or another type of dedicated processor for performing, beforeoutputting to the microcomputer 42 an acceleration signal detected bythe acceleration detection means incorporated therein, any desiredprocessing of the acceleration signal. For example, when theacceleration sensor 37 is intended to detect static acceleration (forexample, gravitational acceleration), the embedded or dedicatedprocessor could convert the acceleration signal to a corresponding angleof tilt (or another preferable parameter).

The communication section 36 includes the microcomputer 42, a memory 43,the wireless module 44 and the antenna 45. The microcomputer 42 controlsthe wireless module 44 for wirelessly transmitting, to the gameapparatus 3, data acquired by the microcomputer 42 while using thememory 43 as a storage area in the process. Further, the microcomputer42 is connected to the connector 33. Data transmitted from the gyrosensor unit 7 is inputted to the microcomputer 42 through the connector33. Hereinafter, a structure of the gyro sensor unit 7 will bedescribed.

The gyro sensor unit 7 includes the plug 53, a microcomputer 54, thetwo-axis gyro sensor 55, and the one-axis gyro sensor 56. As describedabove, the gyro sensor unit 7 detects angular velocities around threeaxes (XYZ axes in the present embodiment), respectively, and transmitsdata (angular velocity data) representing the detected angularvelocities, to the controller 5.

The two-axis gyro sensor 55 detects an angular velocity (per unit time)around each of the X-axis and the Y-axis. Further, the one-axis gyrosensor 56 detects an angular velocity (per unit time) around the Z-axis.In the present invention, directions of the rotations around the Z-axis,the X-axis, and the Y-axis relative to the imaging direction (the Z-axispositive direction) of the controller 5 are referred to as a rolldirection, a pitch direction, and a yaw direction, respectively. Thatis, the two-axis gyro sensor 55 detects angular velocities in the pitchdirection (direction of rotation around the X-axis) and the yawdirection (direction of rotation around the Y-axis), and the one-axisgyro sensor 56 detects an angular velocity in the roll direction (thedirection of rotation around the Z-axis).

In the present embodiment, the two-axis gyro sensor 55 and the one-axisgyro sensor 56 are used so as to detect the angular velocities aroundthe three axes. However, in another embodiment, the number of gyrosensors and a combination thereof to be used may be optionally selectedprovided that the angular velocities around the three axes can bedetected.

Further, in the present embodiment, the three axes around which the gyrosensors 55 and 56 detect the angular velocities are set to correspond tothree axes (XYZ-axes), respectively, for which the acceleration sensor37 detects the accelerations. However, in another embodiment, the threeaxes around which the gyro sensors 55 and 56 detect the angularvelocities need not correspond to the three axes for which theacceleration sensor 37 detects the accelerations.

Data representing the angular velocities detected by the gyro sensors 55and 56 are outputted to the microcomputer 54. Therefore, datarepresenting the angular velocities around the three axes of the X, Y,and Z axes are inputted to the microcomputer 54. The microcomputer 54transmits the data representing the angular velocities around the threeaxes, as angular velocity data, to the controller 5 through the plug 53.The transmission from the microcomputer 54 to the controller 5 issequentially performed at a predetermined cycle, and the game istypically processed at a cycle of 1/60 seconds (corresponding to oneframe time), and the transmission is preferably performed at a cycleshorter than a cycle of 1/60 seconds.

The controller 5 will be described again. Data outputted from theoperation section 32, the imaging information calculation section 35,and the acceleration sensor 37 to the microcomputer 42, and datatransmitted from the gyro sensor unit 7 to the microcomputer 42 aretemporarily stored in the memory 43. The data are transmitted as theoperation data to the game apparatus 3. At a timing of the transmissionto the wireless controller module 19 of the game apparatus 3, themicrocomputer 42 outputs the operation data stored in the memory 43 tothe wireless module 44. The wireless module 44 uses, for example, theBluetooth (registered trademark) technology to modulate the operationdata onto a carrier wave of a predetermined frequency, and radiates thelow power radio wave signal from the antenna 45. That is, the operationdata is modulated onto the low power radio wave signal by the wirelessmodule 44 and transmitted from the controller 5. The wireless controllermodule 19 of the game apparatus 3 receives the low power radio wavesignal. The game apparatus 3 demodulates or decodes the received lowpower radio wave signal to obtain the operation data. Based on theobtained operation data and the game program, the CPU 10 of the gameapparatus 3 performs the game process. The wireless transmission fromthe communication section 36 to the wireless controller module 19 issequentially performed at a predetermined time interval. Since gameprocess is generally performed at a cycle of 1/60 sec. (corresponding toone frame time), data is preferably transmitted at a cycle of a shortertime period. The communication section 36 of the controller 5 outputs,to the wireless controller module 19 of the game apparatus 3, therespective operation data at intervals of 1/200 seconds, for example.

When the controller 5 is used, a player is allowed not only to perform aconventional typical game operation of pressing the respective operationbuttons, but also to perform an operation of tilting the controller 5 ata desired angle of tilt. Other than these operations, by using thecontroller 5, a player is allowed to perform an operation of designatinga desired position on a screen, or perform an operation of moving thecontroller 5 itself.

[Outline of Game Process]

Next, with reference to FIGS. 8 to 13, an outline of a basketball gameprocess executed on the above game system 1 will be described. In abasketball game executed in the present embodiment, a player characterbeing present in a virtual game space repeats shooting of a basketball apredetermined number of times in accordance with an operation performedby a player, and the player is provided with scores in accordance withsuccess or failure of the shooting. When a player performs a swingoperation as shown in FIG. 8, the player character is caused to performshooting of a basketball.

FIG. 9 illustrates an exemplary game image displayed on a screen of thetelevision 2 immediately after a game is started. The game image shows ascene of a virtual game space as viewed from a predetermined viewpoint(virtual camera), and the game image shows a player character, a ball, abasketball ring and the like situated in the virtual game space.Additionally, the game image displays scores of a player.

Under a condition where the game image as shown in FIG. 9 is displayedon a television 2, when the player presses the B button 32 i of thecontroller 5 while directing the input device 8 downward (that is, frontedge of the controller 5 is situated lower than a rear edge of thecontroller 5), the player character grasps a ball, as shown in FIG. 10.When the player performs a jump operation (that is, swings the inputdevice 8 up) thereafter, the player character is caused to jumpvertically upward while holding the ball above his/her head as shown inFIG. 11.

When the player performs a shoot operation (that is, swings the inputdevice 8 forward as shown in FIG. 8), after the player character hasjumped, the player character is caused to throw the ball toward abasketball ring as shown in FIG. 12. The throwing direction and aninitial velocity of the ball, in this case, vary depending on the mannerthat the player swings the input device 8 (that is, swing strength ofthe input device 8, swing timing of the input device 8, orientation ofthe input device 8 when the input device 8 has been swung, and a degreeof twisting of the player's wrist when the input device 8 is swung). Amoving direction, a moving speed, and a reached distance of a ball,which are obtained when a thrown ball passes through the center of thebasketball ring, are a target moving direction, a target moving speed,and a target reached distance of the ball, respectively. When the inputdevice 8 is swung in an ideal manner, or in a substantially idealmanner, shooting is performed successfully and scores are added.Otherwise, shooting results in failure, and the scores are notincreased.

After shooting is performed, when the player presses again the B button32 i of the controller 5 while directing the front edge of the inputdevice 8 downward, the player character grasps a new ball. In a similarmanner to the previous case, in accordance with the operation of theplayer, the player character again performs shooting. In this manner, inaccordance with the operation of the player, the player characterperforms shooting five times from a fixed position in a virtual gamespace. After the five shots are completed, the player character moves toanother position and performs shooting another five times. In thismanner, the player character performs a set of five shots, repetitively.That is, when completing each set, the player moves to a differentposition. When the player completes 5 sets (i.e., 25 shots), a result ofthe game (total scores obtained by the player) is displayed, and thegame ends.

As described above, in the present embodiment, when the player performsthe jump operation and the shoot operation, the player need not operatebuttons provided on the controller 5. Instead, by swinging the player'sarm holding the input device 8 as if the player performs shooting, theplayer character is caused to jump and perform shooting, and thus it ispossible to provide a significantly intuitive game operation. Further,since the operation of the buttons on the controller 5 is not requiredat the time of the shoot operation, in particular, the player can swingthe input device 8 while holding the same with his/her hand securely.

[Details of Game Process]

Next, the game process performed on the game apparatus 3 will bedescribed in detail. First, with reference to FIG. 14, main data used inthe game process performed on the game apparatus 3 will be describedwith reference to FIG. 14. FIG. 14 is a memory map in the external mainmemory 12 (which may be replaced with the internal main memory 11 e) ofthe game apparatus 3. As shown in FIG. 14, the external main memory 12is used as a game program storage area 61, an operation data storagearea 62, an orientation data storage area 63, a difficulty level storagearea 64, a swing strength storage area 65, a twist amount storage area66, and a score storage area 67.

In the game program storage area 61, a game program to realize the abovebasketball game is stored. At an appropriate timing after the power issupplied to the game apparatus 3, the game program is partially orentirely loaded from the optical disc 4 and stored in the game programstorage area 61 of the external main memory 12. In another embodiment,the game program may be supplied to the game apparatus 3 via anarbitrary computer-readable storage medium (e.g., a game cartridge, amagnetic disc, and the like) other than the optical disc, and be storedin the external main memory 12. Further, in still another embodiment,the game program may be loaded from a nonvolatile storage device (e.g.,a flash memory) mounted in the game apparatus 3, and be stored in theexternal main memory 12. In still another embodiment, the game programmay be supplied to the game apparatus 3 from another computer system (agame apparatus, or a game program distribution server apparatus) viawired or wireless communication line, and be stored in the external mainmemory 12.

In the operation data storage area 62, stored is operation datatransmitted from the controller 5 to the game apparatus 3. As describedabove, the operation data is transmitted from the controller 5 to thegame apparatus 3 at intervals of 1/200 seconds, and thus the operationdata stored in the operation data storage area 62 is updated atintervals of 1/200 seconds. In the present embodiment, the operationdata transmitted at intervals of 1/200 seconds is regarded as onesample, and in addition to the most recent operation data (having beenobtained by the game apparatus 3 most recently), a predetermined numberof samples of operation data obtained in the past is stored in theexternal main memory 12.

The operation data storage area 62 stores therein button data, angularvelocity data, acceleration data, and marker coordinate data. The buttondata is data representing whether or not the respective buttons arepressed. The angular velocity data is a set of data representing angularvelocities detected by the gyro-sensors 55 and 56 of the gyro-sensorunit 7. Namely, the angular velocity data represents the angularvelocities around the respective axes in the XYZ-coordinate system shownin FIG. 3, and also represents a set of angular velocities around therespective axes detected currently and in the past. The accelerationdata is a set of data representing acceleration (acceleration vector)detected by the acceleration sensor 37 currently and in the past. Themarker coordinate data is data representing the above-described markercoordinate point, i.e., the coordinate point, calculated by the imageprocessing circuit 41 of the imaging information calculation section 35.The marker coordinate point is based on a two-dimensional coordinatesystem for representing, on a plane, a position corresponding to acaptured image.

The orientation data storage area 63 stores therein orientation data.The orientation data represents a set of data relating to theorientation of the input device 8 (controller 5), and includes rotationmatrix data, roll component rotation data, pitch component rotationdata, yaw component rotation data, pitch orientation data, and yaworientation data.

The rotation matrix data is data representing rotation of the inputdevice 8 (controller 5) from the reference orientation (the orientationin the case where the XYZ-axes coincide with the xyz-axes) to a currentorientation, and the rotation is represented as a rotation matrix M. Therotation matrix M is represented by unit vectors of the input device 8,which indicate the X-axis, Y-axis, and Z-axis directions, and byexpressing the unit vectors with the use of the coordinate system in thespace defined by the xyz-axes. As with the operation data, the rotationmatrix data is a set of data representing a predetermined number ofsamples of rotation matrices M, in addition to the most recent rotationmatrix M. The rotation matrix M is represented by a 3×3 matrix, asindicated in formula (1) below.

$\begin{matrix}{M = \begin{bmatrix}{Xx} & {Yx} & {Zx} \\{Xy} & {Yy} & {Zy} \\{Xz} & {Yz} & {Zz}\end{bmatrix}} & (1)\end{matrix}$

In addition, the roll component rotation data is data representingrotation of the input device 8 around the Z-axis, and is referred to asa roll component rotation matrix Mr. The pitch component rotation datais data representing rotation of the input device 8 around the X-axis,and is referred to as a pitch component rotation matrix Mp. Further, theyaw component rotation data is data representing rotation of the inputdevice 8 around the Y-axis, and is referred to as a yaw componentrotation matrix My. The roll component rotation matrix Mr, the pitchcomponent rotation matrix Mp, and the yaw component rotation matrix Myare each represented by a 3×3 matrix shown in the following formulas (2)to (4).

$\begin{matrix}{{Mr} = \begin{bmatrix}{\cos \; \theta \; r} & {{- \sin}\; \theta \; r} & 0 \\{\sin \; \theta \; r} & {\cos \; \theta \; r} & 0 \\0 & 0 & 1\end{bmatrix}} & (2) \\{{Mp} = \begin{bmatrix}1 & 0 & 0 \\0 & {\cos \; \theta \; p} & {\sin \; \theta \; p} \\0 & {{- \sin}\; \theta \; p} & {\cos \; \theta \; p}\end{bmatrix}} & (3) \\{{My} = \begin{bmatrix}{\cos \; \theta \; y} & 0 & {{- \sin}\; \theta \; y} \\0 & 1 & 0 \\{\sin \; \theta \; y} & 0 & {\cos \; \theta \; y}\end{bmatrix}} & (4)\end{matrix}$

Here, rotation angles in the roll direction (around the Z-axis), thepitch direction (around the X-axis), and the yaw direction (around theY-axis) are set as θr, θp, and θy, respectively. The angles θr, θp, andθy are obtained based on the angular velocity data. In other words, theangle θr is a rotation angle from the reference orientation around theZ-axis, and the rotation angle is obtained by integrating the angularvelocity around the Z-axis. In a similar manner, the angles θp, and θyare also obtained by integrating the angular velocity around the X-axis,and the Y-axis, respectively. Generally, since an output from thegyro-sensors may include errors caused by drifts or the like, theorientation of the input device 8 may be corrected not only based on theintegration of the angular velocity but also based on the accelerationdata. Specifically, when the input device 8 is in a static state, or ina uniform motion, the acceleration indicated by the acceleration datacorresponds to the gravity, and thus the orientation of the input device8 is calculated based on the gravity direction, and the orientationcalculated based on the angular velocity is corrected so as to beapproximated to the orientation calculated based on the acceleration. Inthat case, if the degree of correction is set to be increased in thecase where the magnitude of the acceleration is becoming closer to themagnitude of the gravity, it is possible to ignore the orientation ofthe input device in the case where the orientation cannot be calculatedbased on the acceleration, such as a case where the input device ismoving. Further, it is possible to correct the orientation of the inputdevice in accordance with the marker coordinate data. That is, based ona direction connecting the two marker coordinate points, it is possibleto calculate the orientation of the input device in the roll direction,and also possible to correlate the marker coordinate points with theorientation in the yaw direction and/or the pitch direction.Accordingly, the orientation calculated based on the angular velocityand the orientation corrected based on the acceleration are approximatedto the orientation calculated based on the marker coordinate points to acertain degree, whereby the orientation is corrected.

The above-described rotation matrix M is a result of the product ofrotation matrices indicative of rotations in the roll direction, in thepitch direction, and in the yaw direction with respect to the Z-axis.That is, the rotation matrix M is the result of the product of therespective components in the rotation matrices expressed by the aboveformulas (2) to (4). In the present embodiment, the rotation matrix M(rotation matrix data) is calculated each time the angular velocity datais updated (at intervals of 1/200 seconds), and is stored in theexternal main memory 12.

The pitch orientation data is a set of data representing the orientationof the input device 8 in the pitch direction on the xyz-coordinatesystem, and the orientation in the pitch direction is obtained based onthe above rotation matrix M. Here, the orientation in the pitchdirection on the xyz-coordinate system is an orientation indicative ofrotation around the x-axis, after the input device 8 is rotated based onthe object coordinate system (XYZ-coordinate system), as viewed based ona space fixed coordinate system (xyz-coordinate system).

The yaw orientation data is a set of data representing the orientationof the input device 8 in the yaw direction in the xyz-coordinate system,and the orientation in the yaw direction is obtained based on the aboverotation matrix M. Here, the orientation in the yaw direction in thexyz-coordinate system is an orientation representing rotation around they-axis, after the input device 8 is rotated based on the objectcoordinate system (XYZ-coordinate system), as viewed based on the spacefixed coordinate system (xyz-coordinate system).

The difficulty level storage area 64 stores therein a value indicativeof a difficulty level of a game. In the present embodiment, the value ofthe difficulty level can be a real value ranges between 0 and 25.

The swing strength storage area 65 stores therein a most recent swingstrength P0, a second most recent swing strength P1, a third most recentswing strength P2. The most recent swing strength P0 is a swing strengthP calculated based on most recent angular velocity data. The second mostrecent swing strength P1 is a swing strength P calculated based on theangular velocity data one sample prior to the most recent swing strength(i.e., an angular velocity data sample obtained immediately prior to amost recent angular velocity data sample). In a similar manner, thesecond most recent swing strength P2 is a swing strength P calculatedbased on angular velocity data two samples prior to the most recentswing strength (i.e., an angular velocity data sample obtained twosamples prior to the most recent angular velocity data sample). A methodfor calculating the swing strength P will be described later.

The twist amount storage area 66 stores therein a twist amount R1 of afirst shot, a twist amount R2 of a second shot, a twist amount R3 of athird shot, and a twist amount R4 of a fourth shot. The twist amount R1of the first shot is a twist amount R calculated based on angularvelocity data of the first shot, among a total of 25 shots performed bythe player character in the basketball game. The twist amount R2 of thesecond shot is a twist amount R calculated based on angular velocitydata of the second shot, among the total of 25 shots performed by theplayer character in the basketball game. In a similar manner, the twistamount R3 of the third shot is a twist amount R calculated based onangular velocity data of the third shot, and the twist amount R4 of thefourth shot is a twist amount R calculated based on the angular velocitydata of the fourth shot. A method for calculating the twist amount Rwill be described later.

In the score storage area 67, a value indicative of scores achieved bythe player is stored.

Note that the external main memory 12 stores therein data necessary fora game process such as image data of various objects (a playercharacter, a ball, and the like) appearing on a game, data indicative ofvarious parameters of the objects, and the like, as well as theabove-described game program and various data.

The above-described game program and various data may be stored in theinternal main memory 11 e, instead of the external main memory 12.

In addition, all the above-described various data need not be stored inthe external main memory 12, provided that at least such data that isrequired for a game process is stored in the external main memory 12.For example, in the case where the yaw orientation data is not used in agame process, the yaw orientation data need not be stored in theexternal main memory 12.

Next, with reference to flowcharts shown in FIGS. 15 and 16, a flow of agame process executed by the CPU10 in the game apparatus 3 in accordancewith the game program will be described.

When the game apparatus 3 is powered on, the CPU10 in the game apparatus3 executes a boot program stored in a boot ROM (not shown), so as toinitialize the respective units such as the external main memory 12. Thegame program stored in the optical disc 4 is loaded to the external mainmemory 12, and the CPU10 starts executing the game program 61. Theflowchart shown in FIG. 15 is a flowchart showing process to beperformed after the above-described processes are completed. In theflowchart shown in each of FIGS. 15 and 16, for the sake of simpleexplanation, omitted are processes such as a process of obtainingoperation data from the controller 5 and of storing the same in theexternal main memory 12 periodically, and a process of calculating andthen storing a rotation matrix and the like in the external main memory12 in accordance with the obtained operation data, the rotation matrixbeing indicative of the orientation of the input device 8. In theflowchart shown in each of FIGS. 15 and 16, a process of controlling amotion of a player character, and a game image generation process, whichare well-known technique for those skilled in the art, are also omitted.

In step S10, the CPU10 performs an initialization process. In theinitialization process includes, for example, a process of settingvarious pieces of data stored in the external main memory 12 to theirinitial values. For example, the difficulty level is set to “1” as theinitial value, and the score is set to “0” as the initial value.

In step S11, the CPU10 determines whether or not the orientation of thecontroller 5 is in the downward direction (i.e., a situation where thefront edge of the controller 5 is situated lower than the rear edge ofthe controller 5). When the Zy component of the rotation matrix M isnegative, the Z-axis of the controller 5 faces the downward direction inthe xyz space, and thus it is possible to determine that the orientationof the controller 5 is in the downward direction. Further, thedetermination can be made based on the pitch orientation data stored inthe external main memory 12. In step S11, when it is determined that theorientation of the controller 5 is in the downward direction, theprocess proceeds to step S12. Otherwise, step S11 is repeated until itis determined that the orientation of the controller 5 is in thedownward direction.

In step S12, the CPU10 determines whether or not the B button 32 i ofthe controller 5 has been pressed by the player, based on the buttondata in the operation data storage area 62. When it is determined thatthe B button 32 i has been pressed, the process proceeds to step S13.Otherwise, the process proceeds to step S11.

In step S13, the CPU10 controls the motion of a player character suchthat the player character grasps a ball in the virtual game space.

In step S14, the CPU10 determines whether or not the jump operation isperformed by the player. In the present embodiment, whether or not theplayer swings the input device 8 up is determined in consideration ofall the factors of current acceleration in the Z-axis direction, acurrent angular velocity around the X-axis, a current angular velocityaround the Y-axis, and a current orientation of the input device 8 inthe pitch direction in the xyz-coordinate system. When it is determinedthat the player swings the input device 8 up above his/her head, it isdetermined that the jump operation has been performed. When it isdetermined that the jump operation has been performed, the processproceeds to step S15. Otherwise, step S14 is repeated until it isdetermined that a jump start condition is satisfied.

In step S15, the CPU10 controls the motion of the player character suchthat the player character starts jumping in the virtual game space.

In step S16, the CPU10 performs a shooting process. The shooting processis a process to cause the player character to perform shooting of abasketball. The shooting process will be described later in detail withreference to the flowchart shown in FIG. 16. When the shooting processin step S16 ends, the process proceeds to step S17.

In step S17, the CPU10 determines whether or not a predetermined numberof shots (25 shots in the present embodiment) are completed. When thepredetermined number of shots has been completed, the process proceedsto step S18. Otherwise, the process returns to step S11.

In step S18, the CPU10 generates and then displays on the television 2 aresult image indicative of, for example, scores achieved by the player,and terminates the game process.

Next, with reference to the flowchart shown in FIG. 16, the shootingprocess in step S16 shown in FIG. 15 will be described in detail.

When the shooting process is started, in step S20, the CPU10 calculatesthe swing strength P based on the most recent angular velocity data, andstores the calculated value in the external main memory 12 as the “mostrecent swing strength P0”. At that time, a value, which has been storedas the most recent swing strength P0 in the external main memory 12before the process proceeds to step S20, is then stored as the “secondmost recent swing strength P1” in the external main memory 12. In asimilar manner, a value which has been stored as the second most recentswing strength P1″ in the external main memory 12 before the processproceeds to step S20, is then stored as the “third most recent swingstrength P2” in the external main memory 12.

The swing strength P is an index indicative of the strength of swingingthe input device 8 performed by the player, and is calculated, in thepresent embodiment, based on the angular velocity around the X-axis andthe angular velocity around the Y-axis, as an example. Specifically,when the angular velocity around the X-axis is Rx, and the angularvelocity around the Y-axis is Ry, then the swing strength P iscalculated from √{square root over ( )}(Rx̂2+Rŷ2). Such calculated swingstrength P represents the magnitude of the angular velocity around theX-axis and/or the Y-axis when the input device 8 is rotated. When theplayer swings his/her arm holding the input device 8 from a position Ato a position D through a position B and position C as shown in FIG. 17in a manner as if a shooting motion in the basketball is performed, thevalue of the swing strength P varies during the process of swinging asindicated with a curve shown in FIG. 18. In an example shown in FIG. 18,the swing strength P reaches its local maximum when the player's arm issituated at the position B, however, a local maximum point of the swingstrength P varies depending on the manner that the player swings theinput device 8. In FIG. 17, the player holds the input device 8 in sucha manner that the input device 8 rotates around the X-axis when theplayer swings the input device 8. However, in the present embodiment,since the swing strength P is calculated based on both of the angularvelocity around the X-axis and the angular velocity around the Y-axis,it is possible to appropriately detect the strength of the player'sswinging of the input device 8 as the swing strength P regardless of themanner that player holds the input device 8.

In step S21, the CPU10 determines whether or not a local maximum valueof the swing strength P is equal to or greater than a throwingthreshold. In the present embodiment, whether or not the swing strengthP reaches its local maximum point is determined based on the “mostrecent swing strength P0”, the “second most recent swing strength P1”,and the “third most recent swing strength P2” which are stored in theexternal main memory 12. Specifically, when the value of the “secondmost recent swing strength P1” is greater than the value of the “thirdmost recent swing strength P2”, and when the value of the “most recentswing strength P” is equal to or lower than the “second most recentswing strength P1”, it is determined that the swing strength P hasreached its local maximum point, and the value of the “second mostrecent swing strength P1” is obtained as the local maximum value (notethat in the case where the local maximum value is no need to be precise,the value of the “most recent swing strength P0” may be regarded as thelocal maximum value). For example, when the swing strength P changes asshown in FIG. 19, the magnitude of a point P1 shown in FIG. 19 isobtained as the local maximum value of the swing strength P. It isimpossible to determine whether or not the player performs the shootoperation precisely only by checking whether or not the swing strength Preaches the local maximum point. This is because even when the playerdoes not swing the input device 8, the value of the swing strength Palways changes slightly, and even in such a case, the local maximumpoint can be obtained from low values. Thus, in the present embodiment,when the local maximum value of the swing strength P is equal to orgreater than the predetermined throwing threshold (see FIG. 18), it isdetermined that the shoot operation by the player has been performed.Substantially, a similar determination can be made even if it isdetermined that the shoot operation has been performed by the playerwhen the local maximum value of the swing strength P is “greater than”the predetermined throwing threshold. In step S21, when the localmaximum value of the swing strength P is equal to or greater than thethrowing threshold, the process proceeds to step S22. Otherwise, theprocess returns to step S20. In the following description, a point oftime (the “point of time” does not strictly indicate an “instant” atwhich the swing strength P reaches it local maximum), at which the swingstrength P is equal to or greater than the throwing threshold, andreaches its local maximum, may be simply referred to as the “time ofthrowing”.

In step S22, the CPU10 determines an elevation angle θ in a throwingdirection of a ball in the virtual game space, based on the orientationof the controller 5 at the time of throwing. The throwing direction ofthe ball in the virtual game space indicates a direction in which a ballis released when the player character performs shooting of a basketball,as shown in FIG. 20. The elevation angle θ in the throwing directionrepresents an angle between the throwing direction and the horizontalplane in the virtual game space.

In the present embodiment, the elevation angle θ in the throwingdirection is determined based on the orientation in the pitch directionof the controller 5 at the time of throwing. The orientation in thepitch direction of the controller 5 is represented by the pitchorientation data stored in the external main memory 12. For example, asshown in FIG. 21, the CPU10 determines the elevation angle θ with theuse of a function or a table that defines correlation between theorientation in the pitch direction of the controller 5 and the elevationangle θ in the throwing direction. In an example shown in FIG. 21, thecorrelation between the orientation in the pitch direction of thecontroller 5 and the elevation angle θ is indicated linearly (i.e. as alinear function), and may be indicated with an arbitrary curve,alternatively. This may be applied to other drawings (FIGS. 22 to 26,and 30) to be described later. In the present embodiment, under acondition where the player swings his/her arm as shown in FIG. 17, whenthe swing strength P reaches its local maximum point at an earliertiming, the elevation angle θ becomes large, whereas when the swingstrength P reaches its local maximum point at a later timing, theelevation angle θ becomes smaller. When the elevation angle θ is toolarge or too small, the ball does not reach the basketball ring in thevirtual game space. Specifically, when the elevation angle θ is smallerthan a minimum successful elevation angle θ1, or is larger than themaximum successful elevation angle θ2, the ball cannot reach thebasketball ring. Therefore, to make a successful shot, the orientationin the pitch direction of the controller 5 at the time of throwing needsto stay in a successful range shown in FIG. 21. That is, to make asuccessful shot, the player needs to cause the swing strength P to reachthe local maximum point while the orientation in the pitch direction ofthe controller 5 is staying within the successful range.

In step S23, the CPU10 calculates a minimum successful initial velocityV1 and a maximum successful initial velocity V2, based on the elevationangle θ determined in step S22. The minimum successful initial velocityV1 is a minimum value of an initial velocity V of a ball for asuccessful shot when it is assumed that the player character has thrownthe ball toward the direction of the elevation angle θ, which isdetermined in step S22, aiming at a basketball ring (regarding theleft/right direction, the ball is assumed to be thrown straight towardthe basketball ring). In other words, when the initial velocity V of theball is lower than the minimum successful initial velocity V1, the balldoes not reach the basketball ring, resulting in shot failure. Further,the maximum successful initial velocity V2 is a maximum value of theinitial velocity V of a ball for a successful shot when it is assumedthat the player character has thrown the ball toward the direction ofthe elevation angle θ, which is determined in step 22, aiming at thebasketball ring. In other words, when the initial velocity V of the ballis greater than the maximum successful initial velocity V2, the ballflies over the basketball ring, resulting in shot failure.

In step S24, the CPU10 determines the initial velocity V of the ball inaccordance with the local maximum value of the swing strength P (i.e.,the swing strength P at the time of throwing). The CPU10 determines, asshown in FIG. 22, for example, the initial velocity V with the use of afunction or a table defining correlation between the local maximum valueof the swing strength P and the initial velocity V of the ball. In thepresent embodiment, as shown in FIG. 22, the local maximum value of theswing strength P has a fixed successful range, and when the localmaximum value of the swing strength P coincides with a lower limit ofthe successful range (minimum successful local maximum value), theinitial velocity V of the ball is the same as the minimum successfulinitial velocity V1, whereas when the local maximum value of the swingstrength P coincides with an upper limit of the successful range(maximum successful local maximum value), the initial velocity V of theball is the same as the maximum successful initial velocity V2. When thelocal maximum value of the swing strength P is lower than the minimumsuccessful local maximum value, the initial velocity V of the ball islower than the minimum successful initial velocity V1, and the ball doesnot reach the basketball ring, resulting in shot failure. In a similarmanner, when the local maximum value of the swing strength P is greaterthan the upper limit of the successful range, the initial velocity V ofthe ball is greater than the maximum successful initial velocity V2, andthe ball flies over the basketball ring, resulting in shot failure.Further, when the local maximum value of the swing strength P stayswithin a predetermined successful range, the initial velocity V of theball is determined as a value in a range between the minimum successfulinitial velocity V1 and the maximum successful initial velocity V2.

In step S25, the CPU10 calculates the twist amount R, based on theangular velocity around the Z-axis at the time of throwing. In thepresent embodiment, the CPU10 calculates, as the twist amount R, anaverage value of angular velocities around the Z-axis of recent severalsamples obtained from the angular velocity data stored in the externalmain memory 12. In another embodiment, an angular velocity around theZ-axis of a most recent sample may be used as the twist amount R.

In step S26, the CPU10 determines whether or not a current shot is afifth shot or more from the start of the basketball game. When thecurrent shot is the fifth shot or more, the process proceeds to stepS27. Otherwise (that is, the current shot is one of the first to fourthshots), the process proceeds to step S28.

In step S27, the CPU10 corrects a current twist amount R (i.e., thetwist amount R calculated in immediately preceding step S25), based onthe twist amount R1 of the first shot to the twist amount R4 of thefourth shot which are stored in the external main memory 12. A methodfor correcting the twist amount R in step S27 will be described later.

In step S28, the CPU10 stores, in the external main memory 12, the valueof the current twist amount R (i.e., the twist amount R calculated inimmediately preceding step S25) as any one of the “twist amount R1 ofthe first shot” to the “twist amount R4 of the fourth shot”. Forexample, when the current shot is the first shot, the twist amount R1 ofthe first shot is stored as the current twist amount R. In a similarmanner, when the current shot is the second shot, the twist amount R2 ofthe second shot is stored as the current twist amount R.

In step S29, the CPU10 determines a minimum successful twist amountRmin, and a maximum successful twist amount Rmax, based on the value ofthe “difficulty level” stored in the external main memory 12. Theminimum successful twist amount Rmin and the maximum successful twistamount Rmax are variables indicative of the lower limit and the upperlimit of the successful range of the twist amount R for achieving asuccessful shot, respectively, and the values may vary depending on thedifficulty level. In the present embodiment, the minimum successfultwist amount Rmin is a negative value, and the maximum successful twistamount Rmax is a positive value. The CPU10 determines the minimumsuccessful twist amount Rmin with the use of a function or a tabledefining correlation between the difficulty level and the minimumsuccessful twist amount Rmin. In addition, the CPU10 determines themaximum successful twist amount Rmax with the use of a function or atable defining correlation between the difficulty level and the maximumsuccessful twist amount Rmax. As a result, in the present embodiment,the higher the difficulty level is, the narrower the successful range ofthe twist amount R becomes.

In step S30, the CPU10 determines an azimuth φ in the throwing directionof the ball in the virtual game space, based on the twist amount Rcorrected in step S27 (or, based on twist amount R calculated in stepS25 when the current shot is any one of the first to fourth shots). Asshown in FIG. 20, the azimuth φ in the throwing direction represents anangle between a front vector and the horizontal plane, when a horizontalvector representing a direction extending from the player character tothe basketball ring in the virtual game space is regarded as the frontvector.

The CPU10 determines the azimuth φ with the use of a function or a tabledefining correlation between the twist amount R and the azimuth φ in thethrowing direction, as shown in FIG. 25, for example. In the presentembodiment, the target value of the twist amount R is “0”, and when thetwist amount R is “0”, the azimuth φ is “0”. That is, when thecontroller 5 is not rotating around the Z-axis at all at the time ofthrowing, the ball will not deviate from the center of the basketballring to the left or right, but be released straight toward the center ofthe basketball ring. On the other hand, when the controller 5 isrotating around the Z-axis at the time of throwing, an absolute value ofthe azimuth φ increases in accordance with the angular velocity, andconsequently, the ball is released toward a direction deviating from thecenter of the basketball ring to the left or right. When the azimuth φis too large or to small, the path of the ball in the virtual game spacedeviates from the basketball ring. Specifically, when the azimuth φ issmaller than the minimum successful azimuth φ1 shown in FIG. 25, thepath of the ball deviates from the basketball ring to the left, whereaswhen the azimuth φ is greater than the maximum successful azimuth φ2shown in FIG. 25, the path of the ball deviates from the basketball ringto the right. Therefore, to make a successful shot, the twist amount Rneeds to stay in the successful range (i.e., the target range) shown inFIG. 25.

The lower limit (i.e., the minimum successful twist amount Rmin) and theupper limit (i.e., the maximum successful twist amount Rmax) of thesuccessful range of the twist amount R are determined, in step S29,based on the difficulty level. Therefore, in accordance with a currentdifficulty level, the successful range of the twist amount R varies.FIG. 25 shows a relation between the twist amount R and the azimuth φwhen the difficulty level is “5”, and FIG. 25 shows a relation betweenthe twist amount R and the azimuth φ when the difficulty level is “20”.As is clear from FIGS. 25 and 26, the higher the difficulty level is,the narrower the successful range of the twist amount R becomes. Thatis, the higher the difficulty level is, the more accurately the playerneeds to perform the shoot operation in order to make a successful shot.On the other hand, the lower the difficulty level is, the wider thesuccessful range of the twist amount R becomes. Accordingly, supposingthat shoot operations are performed in a fixed form, when the difficultylevel is lower, the azimuth φ in the throwing direction is correctedsuch that the path of the ball passes closer to the center of thebasketball ring.

In step S31, the CPU10 controls a motion of the player character suchthat the player character performs shooting in the virtual game space.The CPU10 then controls the movement of the ball, based on the elevationangle θ in the throwing direction determined in step S22, the initialvelocity V determined in step S24, and the azimuth φ in the throwingdirection determined in step S30.

In step S32, the CPU10 updates the difficulty level and scores, whichare stored in the external main memory 12, depending on the success orfailure of a shot. Specifically, when the orientation in the pitchdirection of the controller 5 at the time of throwing stays in thesuccessful range shown in FIG. 21, and the local maximum value of theswing strength P stays in the successful range shown in FIG. 22, and thetwist amount R at the time of throwing stays in the successful range (inthis case, the ball released by the player character eventually passesthrough the basketball ring), then the CPU10 determines that the shothas been made successfully. Otherwise, the CPU10 determines that theshot has failed.

In step S32, basically, the difficulty level increases when a shot hasbeen made successfully, and decreases when a shot has failed. As amethod for updating the difficulty level, various methods may beconsidered. Hereinafter, variations in the method for updating thedifficulty level in step S32 will be described.

FIG. 27 shows an exemplary case where a predetermined value (“1” in theexample of FIG. 27) is added to the current difficulty level when a shothas been made successfully, whereas a predetermined value (“1” in theexample of FIG. 27) is subtracted from the current difficulty level whenthe shot has failed. In this manner, the difficulty level is setadaptively in accordance with the skill of the player, and thus it ispossible to prevent the player from feeling the game to easy or toodifficult.

FIG. 28 shows an exemplary case where a predetermined value (“1” in theexample shown in FIG. 28) is added to the current difficulty level whena shot has been made successfully, whereas the current difficulty levelis reset to an initial value (“1” in the example of FIG. 28) when theshot has failed. In this manner, when the shot has failed, thedifficulty level is reset to the initial value, and accordingly, thepossibility that the player makes miss shots repetitively is lowered,which enables the player to play the game comfortably.

FIG. 29 shows a case where a predetermined value (“1” in the example ofFIG. 29) is added to the current difficulty level when a shot is madesuccessfully, whereas a predetermined value (“1” in the example of FIG.29) is subtracted from the current difficulty level when the shot hasfailed. In addition, the difficulty level is reset to the initial value(“1” in the example of FIG. 29) each time one set (a set of five shotsin the example of FIG. 29) is completed regardless of the success orfailure of the shots. Normally, when the player performs a shootoperation relatively immediately after the most recent shoot operation,relatively highly accurate shoot operation can be performed. On theother hand, when the player performs a shoot operation after a certaininterval from the most recent shoot operation, the accuracy of the shootoperation tends to deteriorate. Thus, as shown in the example of FIG.29, the difficulty level is reset to the initial value each time one setis completed, whereby even if there is a long time interval betweenrespective sets due to a theatrical movement of the player character orthe like performed between the respective sets, the possibility offailure in the initial shot in each set is lowered, which enables theplayer to play the game comfortably.

In the present embodiment, the difficulty level is updated in accordancewith the success or failure of a shot. However, the difficulty level maybe determined based not only on the success and failure of a shot, butalso on other conditions. For example, in a basketball game in which aplayer causes a player character to move to a desired position and toperform shooting, the difficulty level, which is updated in accordancewith the successor failure of a shot, is stored in the external mainmemory 12 as a “basic difficulty level”. To determine the maximumsuccessful twist amount Rmax and the minimum successful twist amountRmin in step S29, a difficulty level offset, which depends on a distancebetween the player character and the basketball ring, is added to thebasic difficulty level, whereby the maximum successful twist amount Rmaxand the minimum successful twist amount Rmin may be determined. In thiscase, the CPU10 can determine the difficulty level offset with the useof a function or a table shown in FIG. 30.

When the step S32 ends, the shooting process ends.

Next, a method for correcting the twist amount R in step S27 shown inFIG. 16 will be described.

In the present embodiment, the twist amount R of first to fourth shotsare stored in the external main memory 12 as the “twist amount R1 of thefirst shot” to the “twist amount R4 of the fourth shot”, respectively.At the time of a shooting process for a fifth shot or thereafter, thecurrent twist amount R (the twist amount R calculated in immediatelypreceding step S25) is corrected with the use of the “twist amount R1 ofthe first shot” to the “twist amount R4 of the fourth shot”.Specifically, an average value of the “twist amount R1 of the firstshot” to the “twist amount R4 of the fourth shot” is calculated, and thecalculated average value is subtracted from the current twist amount R.

In the present embodiment, since the target value of the twist amount Rrequired in the game is “0” the twist amount R represents deviation ofthe angular velocity around the Z-axis at the time of throwing from thetarget angular velocity. Accordingly, the average value of the “twistamount R1 of the first shot” to the “twist amount R4 of the fourth shot”represents a degree of average deviation, from the target angularvelocity, of the angular velocities around the Z-axis at the time ofthrowing the first to fourth shots. That is, when the average value ofthe “twist amount R1 of the first shot” to the “twist amount R4 of thefourth shot” is calculated, it is possible to know the behavior of aplayer at the time of the shoot operation (namely, it is possible toknow a degree of deviation tendency of the angular velocity around theZ-axis at the time of throwing with respect to the target angularvelocity). In other words, in the present embodiment, as an indexindicative of a degree of deviation tendency (hereinafter referred to asa “deviation tendency value”) of the twist amount R detected inaccordance with the shoot operation relative to the target value of thetwist amount R required in the game (in the present embodiment, “0”),the average value of the “twist amount R1 of the first shot” to the“twist amount R4 of the fourth shot” is used. However, the method forcalculating the deviation tendency value is not limited to this.

Based on the above deviation tendency value, the twist amount R iscorrected, whereby the behavior peculiar to respective players in theshoot operation (i.e., a player's behavior in moving his/her arm orwrist at the time of performing the shoot operation) can be offset withrespect to the fifth and the following shots. In the case of a buttonswitch operation conventionally performed, there is no problem of thebehavior peculiar to each player. On the other hand, the game using theangular velocity of the input device 8, as in the case of the presentembodiment, is largely affected by the behavior of the player in movinghis/her arm and wrist, which could be advantageous to one player, andcould be disadvantageous to another. For example, even if a player canrepeat a throwing motion in a stable manner, it may be difficult for theplayer to make a successful shot as long as the player has a behavior ofalways twisting his/her wrist at or around the time of throwingdetection. In the present embodiment, thus, the behavior of the player(that is, tendency of the twist amount R when the shoot operation isperformed) is detected based on the twist amount R obtained from theshoot operation for the first to fourth shots, and the twist amount R iscorrected with respect to the shoot operation for the fifth and thefollowing shots such that the detected behavior of the player is offset.Accordingly, even if the first to fourth shots have failed due to thebehavior peculiar to the player, the azimuth φ in the throwing directionof the fifth and the following shots will be “0”, i.e., the targetvalue, as long as the player constantly performs the shoot operation ina fixed form, and consequently a successful shot may be achieved.

In the present embodiment, the behavior of a player (i.e., deviationtendency value) is detected based on the shoot operation for the firstto fourth shots in the case of performing a total of 25 shots in abasketball game. However, the shoot operation for which shot(s) is usedto detect the behavior of the player is arbitrary determined. Forexample, the behavior of a player may be detected based on the shootoperation for the first shot to the most recent shot.

Further, in the present embodiment, the twist amount R is corrected forthe fifth and the following shots. However, the twist amount R may becorrected for a shot before the fifth shot (e.g., a third shot) bydetecting the behavior of the player based on the shoot operationperformed prior to the shot (e.g., the shoot operation for the first andsecond shots).

In the present embodiment, the average value of the “twist amount R1 ofthe first shot” to the “twist amount R4 of the fourth shot” iscalculated, and the calculated average value is subtracted from thecurrent twist amount R. However, instead of a simple average value, anarbitrary representing value, such as a weighted average value, a modevalue, a median value, and the like may be used in accordance with theintended purpose. The number of shots to calculate the average is notnecessarily 5, but may be other numbers. Alternatively, the average ofmost recent predetermined number of shots may be used.

Further, in the present embodiment, the behavior of the player iscorrected and offset with respect to the twist amount R, however, thebehavior of the player may be corrected and offset with respect to anarbitrary parameter determined based on the angular velocity data. Forexample, based on the “local maximum value of the swing strength P”detected from the first to fourth shots, the deviation tendency valueindicative of the tendency of deviation of the local maximum value ofthe swing strength P relative to an ideal value (e.g., the median valuein the successful range shown in FIG. 22) is calculated. The deviationtendency value is used for the fifth and the following shots, wherebythe “local maximum value of the swing strength P” may be corrected. The“orientation in the pitch direction of the controller at the time ofthrowing”, which is used in step S22, may be corrected in a similarmanner.

As described above, in the present embodiment, the successful range ofthe azimuth φ in the throwing direction of a ball, when a playerperforms a shoot operation by swinging the input device 8, may bechanged in accordance with the difficulty level, and thus the game willnot become too monotonous. In the present embodiment, the successfulrange of the azimuth φ is changed depending on the difficulty level,however, in another embodiment, the successful range of the elevationangle θ or the successful range of the initial velocity V may be changeddepending on the difficulty level.

According to the present embodiment, the difficulty level can be changeddepending on the success or failure of a shot, and thus the player willnot feel the game too easy or too difficult. In the present embodiment,although the difficulty level is changed depending on the success orfailure of a shot, in another embodiment, the difficulty level may bechanged depending on the success or failure of an arbitrary gameoperation using the angular velocity.

Further, in the present embodiment, while the player is playing thebasketball game, the behavior of the player's shoot operation islearned, whereby the angular velocity of the input device 8 around theZ-axis is corrected. Thus, the behavior peculiar to each player may beoffset. Although, in the present embodiment, the angular velocity of theinput device 8 around the Z-axis is corrected, in another embodiment,the angular velocity of the input device 8 around the X-axis, or theangular velocity around the Y-axis may be corrected.

In the present embodiment, a case of executing a basketball game on thegame apparatus 3 has been described, however, it is understood that thepresent invention may be applicable to any games other than thebasketball game.

For example, in a golf game, in which a player swings the input device 8so that a player character in a virtual game space swings a golf cluband hits a golf ball, success or failure of respective swings may bedetermined depending on whether the golf ball stops on a fair way or ona rough, and depending a result of the determination, the difficultylevel (a successful range of the angular velocity of the input device 8required when the player performs the swing operation) may be changed.

For example, in the above golf game, in the case of playing a total of18 holes of golf, the player's behavior in a swing operation is learnedbased on the player's swing operation for the first hole. The angularvelocity of the input device 8, which is detected at the time of theplayer's swing operation, may be corrected, such that the player'sbehavior is offset at the time of the player's swing operation for thesecond and the following holes.

The basketball game in the present embodiment is played by one player.However, in another embodiment, in a game in which a plurality ofplayers play a match, the difficulty level may be set and updated foreach player, individually. For example, when two players, that is, afirst player and a second player are to play a match of a basketballgame while operating different teams, respectively, the difficulty levelfor the first player may be updated depending on the success or failureof the shoot operation by the first player, whereas the difficulty levelfor the second player may be updated depending on the success or failureof the shoot operation by the second player. Accordingly, even ifplayers whose level of skill is different from each other are to play amatch, since the difficulty level is set appropriately to each playerdepending on his/her level of skill, it is possible to effectively avoidone-sided match progress.

In the present embodiment, when the swing strength P reaches its localmaximum, and the value is greater than the throwing threshold, theplayer character is caused to perform shooting. However, a timing atwhich the player character is caused to perform shooting is not limitedto this.

In the present embodiment, the initial value of the difficulty level isset to “1”, however, the initial value of the difficulty level may beanother value (e.g., “5”).

Further, in the present embodiment, the initial velocity and thethrowing direction of a ball are determined based on the shoot operationby the player, however, the present invention is not limited to this.Movement of an arbitrary object other than the ball may be controlledbased on the angular velocity around a predetermined axis of the inputdevice (controller) operated by the player.

Further, in the present embodiment, the angular velocities in thethree-axis directions are detected by the gyro-sensors 55 and 56,however, the present invention may be realized by detecting the angularvelocity in a one-axis direction or two-axis directions.

Further, in the present embodiment, the input device 8 and the gameapparatus 3 are connected to each other via wireless communication,however, the input device 8 and the game apparatus 3 may be electricallyconnected to each other via a cable.

Further, in the present embodiment, the CPU 10 of the game apparatus 3executes a game program, whereby the processes in the above flowchartare performed. In another embodiment, some or all of the above processesmay be performed by a dedicated circuit provided to the game apparatus3.

While the invention has been described in detail, the foregoingdescription is in all aspects illustrative and not restrictive. It isunderstood that numerous other modifications and variations can bedevised without departing from the scope of the invention.

1. A game apparatus executing, multiple times, a game for causing aplayer to perform a predetermined game operation using a controllerprovided with an angular velocity sensor, and performing a game processbased on operation data including angular velocity data, which isobtained from the angular velocity sensor each time the predeterminedgame operation is performed, the game apparatus comprising: parametervalue determination means for determining a value of a predeterminedparameter in accordance with the angular velocity data obtained from theangular velocity sensor each time the predetermined game operation isperformed; deviation tendency value calculation means for calculating adeviation tendency value, which indicates a degree of deviation tendencyof a value of the parameter with respect to a target value of theparameter, the target value being required in the game, in accordancewith the value of the parameter determined based on the predeterminedgame operation performed once or more in the past; and game processmeans for correcting the value of the parameter determined by theparameter value determination means with the use of the deviationtendency value calculated by the deviation tendency value calculationmeans, and for performing the game process with the use of the correctedvalue of the parameter.
 2. The game apparatus according to claim 1,wherein the deviation tendency value calculation means calculates thedeviation tendency value based on the value of the parameter determinedby the parameter value determination means in accordance with thepredetermined game operation performed multiple times in the past. 3.The game apparatus according to claim 2, wherein the deviation tendencyvalue calculation means calculates, as the deviation tendency value, arepresentative value of a difference between the value of the parameter,which is determined by the parameter value determination means inaccordance with the predetermined game operation performed multipletimes in the past, and the target value.
 4. The game apparatus accordingto claim 3, wherein the representative value is an average value.
 5. Thegame apparatus according to claim 3, wherein the deviation tendencyvalue calculation means corrects the value of the parameter bysubtracting the deviation tendency value calculated by the deviationtendency value calculation means from the value of the parameterdetermined by the parameter value determination means.
 6. The gameapparatus according to claim 1, wherein the game process means performsthe game process with the use of the value of the parameter determinedby the parameter value determination means, without correcting the valueof the parameter with the deviation tendency value, when the deviationtendency value is yet to be calculated by the deviation tendency valuecalculation means.
 7. The game apparatus according to claim 1, whereinthe game process means includes judging means which judges that the gameoperation is successful when the difference between the value of theparameter and the target value is in a predetermined range.
 8. The gameapparatus according to claim 1, wherein the parameter valuedetermination means determines that the predetermined game operation hasbeen performed when the angular velocity data satisfies a predeterminedcondition, and determines the value of the parameter in accordance withthe angular velocity data obtained from the angular velocity sensor. 9.The game apparatus according to claim 8, wherein the predeterminedcondition is that the magnitude of an angular velocity indicated by theangular velocity data reaches a local maximum, and that a local maximumvalue of the angular velocity is greater than a predetermined threshold.10. The game apparatus according to 9, further comprising angularvelocity storage means for sequentially storing the angular velocitydata obtained from the angular velocity sensor, wherein, when themagnitude of an angular velocity indicated by the angular velocity datareaches a local maximum, and when a local maximum value of the angularvelocity is greater than the predetermined threshold, the parametervalue determination means reads, from the angular velocity storagemeans, a piece of angular velocity data obtained for a predeterminedperiod before the angular velocity reaches the local maximum, anddetects an angular velocity around a predetermined axis of thecontroller in accordance with the piece of angular velocity data, anddetermines the detected angular velocity around the predetermined axisof the controller, as the value of the parameter, and the game processmeans changes a moving direction of a predetermined object in a virtualgame space, in accordance with the angular velocity around thepredetermined axis of the controller, the angular velocity having beensubjected to correction with the use of the deviation tendency value.11. The game apparatus according to claim 9, wherein, when the magnitudeof an angular velocity indicated by the angular velocity data reaches alocal maximum, and when a local maximum value of the angular velocity isgreater than the predetermined threshold, the parameter valuedetermination means determines the value of the local maximum as thevalue of the parameter, and the game process means changes a movingvelocity and/or a reached distance of a predetermined object in avirtual game space in accordance with the local maximum value havingbeen subjected to correction with the use of the deviation tendencyvalue.
 12. The game apparatus according to claim 9, wherein, when themagnitude of an angular velocity indicated by the angular velocity datareaches a local maximum, and when a local maximum value of the angularvelocity is greater than the predetermined threshold, the parametervalue determination means determines, as the value of the parameter, anorientation of the controller detected based on the angular velocitydata obtained from the angular velocity sensor, and the game processmeans changes a moving direction of a predetermined object in a virtualgame space, in accordance with the orientation of the controller afterbeing subjected to correction with the use of the deviation tendencyvalue.
 13. A computer-readable storage medium having stored thereon agame program for causing a computer of a game apparatus, which executes,multiple times, a game for causing a player to perform a predeterminedgame operation using a controller provided with an angular velocitysensor, and which performs a game process based on operation dataincluding angular velocity data obtained from the angular velocitysensor each time the predetermined game operation is performed, tofunction as: parameter value determination means for determining a valueof a predetermined parameter in accordance with the angular velocitydata obtained from the angular velocity sensor each time thepredetermined game operation is performed; deviation tendency valuecalculation means for calculating a deviation tendency value, whichindicates a degree of deviation tendency of a value of the parameter,which is determined by the parameter value determination means inaccordance with the predetermined game operation, with respect to atarget value of the parameter, the target value being required in thegame, in accordance with the value of the parameter determined, by theparameter value determination means in accordance with the predeterminedgame operation performed once or more in the past; and game processmeans for correcting the value of the parameter determined by theparameter value determination means with the use of the deviationtendency value calculated by the deviation tendency value calculationmeans, and for performing the game process with the use of the correctedvalue of the parameter.
 14. The computer-readable storage mediumaccording to claim 13, wherein the deviation tendency value calculationmeans calculates the deviation tendency value based on the value of theparameter determined by the parameter value determination means inaccordance with the predetermined game operation performed multipletimes in the past.
 15. The computer-readable storage medium according toclaim 14, wherein the deviation tendency value calculation meanscalculates, as the deviation tendency value, a representative value of adifference between the value of the parameter, which is determined bythe parameter value determination means in accordance with thepredetermined game operation performed multiple times in the past, andthe target value.
 16. The computer-readable storage medium according toclaim 15, wherein the representative value is an average value.
 17. Thecomputer-readable storage medium according to claim 15, wherein thedeviation tendency value calculation means corrects the value of theparameter by subtracting the deviation tendency value calculated by thedeviation tendency value calculation means from the value of theparameter determined by the parameter value determination means.
 18. Thecomputer-readable storage medium according to claim 13, wherein the gameprocess means performs the game process with the use of the value of theparameter determined by the parameter value determination means, withoutcorrecting the value of the parameter with the deviation tendency value,when the deviation tendency value is yet to be calculated by thedeviation tendency value calculation means.
 19. The computer-readablestorage medium according to claim 13, wherein the game process meansincludes judging means which judges that the game operation issuccessful when the difference between the value of the parameter andthe target value is in a predetermined range.
 20. The computer-readablestorage medium according to claim 13, wherein the parameter valuedetermination means determines that the predetermined game operation hasbeen performed when the angular velocity data satisfies a predeterminedcondition, and determines the value of the parameter in accordance withthe angular velocity data obtained from the angular velocity sensor. 21.The computer-readable storage medium according to claim 20, wherein thepredetermined condition is that the magnitude of an angular velocityindicated by the angular velocity data reaches a local maximum, and thata local maximum value of the angular velocity is greater than apredetermined threshold.
 22. The computer-readable storage mediumaccording to claim 21, further causing the computer to function asangular velocity storage means for sequentially storing the angularvelocity data obtained from the angular velocity sensor in an angularvelocity storage area, wherein, when the magnitude of an angularvelocity indicated by the angular velocity data reaches a local maximum,and when a local maximum value of the angular velocity is greater thanthe predetermined threshold, the parameter value determination meansreads, from the angular velocity storage means, a piece of angularvelocity data obtained for a predetermined period before the angularvelocity reaches the local maximum, and detects an angular velocityaround a predetermined axis of the controller in accordance with thepiece of angular velocity data, and determines the detected angularvelocity around the predetermined axis of the controller, as the valueof the parameter, and the game process means changes a moving directionof a predetermined object in a virtual game space, in accordance withthe angular velocity around the predetermined axis of the controller,the angular velocity having been subjected to correction with the use ofthe deviation tendency value.
 23. The computer-readable storage mediumaccording to claim 21, wherein, when the magnitude of an angularvelocity indicated by the angular velocity data reaches a local maximum,and when a local maximum value of the angular velocity is greater thanthe predetermined threshold, the parameter value determination meansdetermines the value of the local maximum as the value of the parameter,and the game process means changes a moving velocity and/or a reacheddistance of a predetermined object in a virtual game space in accordancewith the local maximum value having been subjected to correction withthe use of the deviation tendency value.
 24. The computer-readablestorage medium according to claim 21, wherein, when the magnitude of anangular velocity indicated by the angular velocity data reaches a localmaximum, and when a local maximum value of the angular velocity isgreater than the predetermined threshold, the parameter valuedetermination means determines, as the value of the parameter, anorientation of the controller detected based on the angular velocitydata obtained from the angular velocity sensor, and the game processmeans changes a moving direction of a predetermined object in a virtualgame space, in accordance with the orientation of the controller afterbeing subjected to correction with the use of the deviation tendencyvalue.